package com.java214.array.stack;

/**
 * @program: JavaData
 * @ClassName MyStack
 * @description: 栈的实现,特点：先进后出,后进先出
 * @author: tyf19970214
 * @create: 2021-05-04 02:41
 * @Version 1.0
 **/
public class MyStack {

    //栈底层实现是一个数组
    private long[] arr;
    //盒子的顶部
    private Integer top;

    /**
     * 默认的构造方法
     */

    public MyStack(){
        arr=new long[10];
                top=-1;
    }

    /**
     * 带参数的构造函数
     */
    public MyStack(int maxsize){
        arr=new long[maxsize];
        top=-1;
    }


    /**
     * 添加数据
     */
    public void push(int value){
        arr[++top]=value;
    }


    /**
     * 移除数据
     */

    public long pop(){
        return arr[top--];
    }

    /**
     * 查看数据
     */

    public long look(){
        return arr[top];
    }


    /**
     * 判断是否为空
     */

    public boolean isEmpty(){
        return top == -1;
    }


    /**
     * 判断是否满了
     */
    public boolean isFull(){
        return top==arr.length-1;//该公式代表该栈已经满了
    }
}
